<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<!-- Mirrored from www.wolfssl.com/wolfSSL/Docs-beginners-guide-yocto-openembedded-recipe.html by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 17 Jan 2017 13:26:15 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8" /><!-- /Added by HTTrack -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="Generator" content="iWeb 3.0.4"/>
<meta name="iWeb-Build" content="local-build-20170103"/>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<meta name="viewport" content="width=770"/>
<title>wolfSSL - Docs | Beginners Guide Yocto Openembedded Recipe</title>
<link rel="stylesheet" type="text/css" media="screen,print" href="Docs-beginners-guide-yocto-openembedded-recipe_files/Docs-beginners-guide-yocto-openembedded-recipe.css"/>
<!--[if lt IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Docs-beginners-guide-yocto-openembedded-recipe_files/Docs-beginners-guide-yocto-openembedded-recipeIE.css'/><![endif]-->
<!--[if gte IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Media/IE8.css'/><![endif]-->
<script type="text/javascript" src="Scripts/iWebSite.js"></script>
<script type="text/javascript" src="Scripts/iWebImage.js"></script>
<script type="text/javascript" src="Docs-beginners-guide-yocto-openembedded-recipe_files/Docs-beginners-guide-yocto-openembedded-recipe.js"></script>
<meta name="description" content="Beginners guide to writing a bitbake recipe for OpenEmbedded and Yocto Projects."/><meta name="keywords" content="embedded ssl, yocto recipe, open embedded recipe, embedded crypto, ssl library, source code, openssl alternative, tls 1.2, dtls, github ssl, tls library, open source projects, open source ssl, open source tls, ssl, tls, ssl porting, small openssl, smart grid, connected home, ecc, lightweight ssl, suite b, encryption security software, ssl inspection"/><meta name="robots" content="follow,index"/> <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','../../www.google-analytics.com/analytics.js','ga');ga('create','UA-64826966-1','auto');ga('send','pageview');</script>
 
<script>//<![CDATA[
window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(c){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var o=this.createElement("script");n&&(this.domain=n),o.id="js-iframe-async",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload="document._l();">'),o.close()}("../../assets.zendesk.com/embeddable_framework/main.js","wolfssl.zendesk.com");
//]]></script>
  </head>
<body style="background: rgb(255, 255, 255); margin: 0pt; " onload="onPageLoad();">
<div style="text-align: center; ">
<div style="margin-bottom: 20px; margin-left: auto; margin-right: auto; margin-top: 20px; overflow: hidden; position: relative; word-wrap: break-word;  background: rgb(255, 255, 255); text-align: left; width: 770px; " id="body_content">
<div style="float: left; margin-left: 0px; position: relative; width: 770px; z-index: 0; " id="nav_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div style="clear: both; height: 0px; line-height: 0px; " class="spacer"> </div>
</div>
<div style="float: left; height: 0px; line-height: 0px; margin-left: 0px; position: relative; width: 770px; z-index: 10; " id="header_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
</div>
<div style="margin-left: 0px; position: relative; width: 770px; z-index: 5; " id="body_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div id="id1" style="height: 62px; left: 26px; position: absolute; top: 157px; width: 710px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_710_62" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-top: 0pt; " class="paragraph_style">Beginners Guide to Writing a Recipe for<br/></p>
<p style="padding-bottom: 0pt; " class="paragraph_style">OpenEmbedded and Yocto Projects</p>
</div>
</div>
</div>
<div id="id2" style="height: 1432px; left: 35px; position: absolute; top: 541px; width: 701px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_701_1432" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-top: 0pt; " class="paragraph_style_1">Writing the Recipe<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">1.  Layer Directory<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>Create layer directory and name it  meta-&lt;name&gt; i.e., meta-wolfssl.<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">2.  Conf File<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>Inside of your layer directory, create a conf directory with a layer.conf file stored in it:<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>conf/layer.conf<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>This file is required by all bitbake images. It should contain standard information that can be seen <a title="http://www.yoctoproject.org/docs/1.6/dev-manual/dev-manual.html#creating-your-own-layer" href="http://www.yoctoproject.org/docs/1.6/dev-manual/dev-manual.html#creating-your-own-layer">here</a>. <br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">3.  Recipe Directory<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>Create a recipe directory in  the layer i.e., meta-wolfssl/cyassl. <br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>This is the name used when adding the recipe package to a Yocto Project bitbake image. <br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">4.  .bb File<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>Create the bitbake recipe file, i.e., meta-wolfssl/cyassl/cyassl_3.0.0.bb. File format:<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>&lt;package name&gt;_&lt;version&gt;.bb file<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">5.  Formatting the .bb Recipe<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>For formatting your recipe, check out the Yocto Project Development manual <a title="http://www.yoctoproject.org/docs/1.6/dev-manual/dev-manual.html#new-recipe-writing-a-new-recipe" href="http://www.yoctoproject.org/docs/1.6/dev-manual/dev-manual.html#new-recipe-writing-a-new-recipe">page</a> - make note of whether you are on the Development Manual or the Reference manual, as they are 2 separate items - and the OpenEmbedded user manual <a title="http://docs.openembedded.org/usermanual/usermanual.html" href="http://docs.openembedded.org/usermanual/usermanual.html">page</a>.<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">6.  Terminology<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>Some common terms used in recipes:<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><span class="style">${WORKDIR}</span> - this is the location inside of your build (after you run source oe-init-build-env) and is referring to: <br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>build/tmp/work/&lt;machine_architecture&gt;/&lt;recipe_name&gt;/&lt;recipe_version&gt;<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><span class="style">${PN}</span> - Package name, i.e., name of the recipe. Same as the name you gave your .bb file.<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><span class="style">${PV}</span> - Package version, i.e., version of the recipe.<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><span class="style">SRC_URI</span> = “the file your recipe is built off of.” This can be a .zip, .c, or whichever file you need to build your recipe with. <br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><span class="style">md5</span>, <span class="style">sha256</span> - these can be found by typing “openssl md5 &lt;file_name&gt;” into the command line. <br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>For understanding more of the terminology used in your recipe, check out the Yocto Project Reference manual <a title="http://www.yoctoproject.org/docs/1.6/ref-manual/ref-manual.html#ref-varlocality-recipe-required" href="http://www.yoctoproject.org/docs/1.6/ref-manual/ref-manual.html#ref-varlocality-recipe-required">here</a>.<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_1">Adding the Recipe to your Image<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">1.  Add Layer Path<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>After running source oe-init-build-env, the file location of your layer should be added to your bblayers.conf file. This file is located in build/conf/bblayers.conf. Enter the location of the layer in:<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        BBLAYERS ?=  <br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>This is what the conf/bblayers.conf for meta-wolfssl on the Minnowboard looks like:<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        BBLAYERS ?= &quot; \<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        /home/name/poky/meta \<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        /home/name/poky/meta-yocto \<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        /home/name/poky/meta-yocto-bsp \<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        /home/name/poky/meta-intel \<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        /home/name/poky/meta-minnow \<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        /home/name/wolfSSL/meta-wolfssl \<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        &quot;<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3"> 2.  Append the Package<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>Within the build/conf/local.conf file, add this line anywhere:<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        <br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>        IMAGE_INSTALL_append = &quot; cyassl benchmark ctaocrypttest&quot;<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>We included all three recipe packages from meta-wolfssl here. You can add multiple recipes from different layers (as long as these layers have a path located in step one) here or just one, or none. <br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">3.  Add Package to Image Recipe<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>If you installed Poky from the Yocto Project, the recipe for your image will be located at meta/recipes-&lt;name&gt;/images/&lt;name-of-recipe&gt;.bb. You can create your own custom image recipe, or add to an existing one. Since we used core-image-sato, we edited core-image-sato.bb in this location. If you do this, make sure you know exactly which changes you made so you can revert back to the original image if needed. To add a new recipe to your image, add this line (or add to the IMAGE_INSTALL line if it already exists):<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>IMAGE_INSTALL += &quot;package-name package2-name package3-name&quot;<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">4.  Run bitbake Command<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>After you have created and inserted everything into your image, you can bitbake the image <br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>and run it on your board. You can also bitbake each recipe individually to check for errors before trying to build the entire image. This can be done simply by typing:<br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>bitbake &lt;recipe-name&gt; <br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span><br/></p>
</li>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>where &lt;recipe-name&gt; is the directory where your .bb file is stored. Then you will run bitbake image-name<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">5.  Types of Pre-Built Images<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 16px; text-indent: -16px; " class="full-width">
<p style="text-indent: -16px; " class="paragraph_style_4"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 16px; " class="inline-block"></span>A list of the various Yocto Project images can be found <a title="http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#ref-images" href="http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#ref-images">here</a>. The image we used for building with meta-wolfssl on the Minnowboard was core-image-sato. This image takes quite a while to build - expect over a day if you are building inside a virtual machine. It is also very large - not the image itself, but the build components take up almost 50GB, so make sure you have enough space on your computer. The actual image that will be booted onto your embedded device will be very small. <br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p style="padding-bottom: 0pt; " class="paragraph_style_5">Copyright 2017 wolfSSL Inc.  All rights reserved.</p>
</div>
</div>
</div>
<div id="id3" style="height: 24px; left: 193px; position: absolute; top: 122px; width: 433px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_433_24" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_6"><a class="class1" title="Docs.html" href="Docs.html">Docs</a> <span class="style_1">-&gt;</span> <span class="style_2">Beginners Guide to Writing a Recipe for OpenEmbedded and Yocto Projects</span></p>
</div>
</div>
</div>
<div style="height: 1px; width: 698px;  height: 1px; left: 37px; position: absolute; top: 260px; width: 698px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 698px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_1.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 698px; "/>
</div>
</div>
<div style="height: 37px; width: 545px;  height: 37px; left: 191px; position: absolute; top: 80px; width: 545px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 545px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_2.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 545px; "/>
</div>
</div>
<div id="id4" style="height: 25px; left: 200px; position: absolute; top: 84px; width: 43px; z-index: 1; " class="style_SkipStroke_1 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_43_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_7"><a class="class2" title="Home.html" href="Home.html">Home</a></p>
</div>
</div>
</div>
<div id="id5" style="height: 25px; left: 365px; position: absolute; top: 84px; width: 72px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_72_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_8"><a class="class3" title="https://wolfssl.com/wolfSSL/download/downloadForm.php" href="https://wolfssl.com/wolfSSL/download/downloadForm.php">Download</a></p>
</div>
</div>
</div>
<div id="id6" style="height: 25px; left: 439px; position: absolute; top: 84px; width: 59px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_59_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_8"><a class="class4" title="License.html" href="License.html">License</a></p>
</div>
</div>
</div>
<div id="id7" style="height: 25px; left: 499px; position: absolute; top: 84px; width: 44px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_44_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_8"><a class="class5" title="Blog/Blog.html" href="Blog/Blog.html">Blog</a></p>
</div>
</div>
</div>
<div id="id8" style="height: 25px; left: 589px; position: absolute; top: 84px; width: 80px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_80_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_8"><a class="class6" title="Community.html" href="Community.html">Community</a></p>
</div>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 245px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_3.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 296px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_4.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 363px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_5.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 438px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_6.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 498px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_7.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 589px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_8.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id9" style="height: 25px; left: 671px; position: absolute; top: 84px; width: 61px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_61_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_8"><a class="class7" title="Contact.html" href="Contact.html">Contact</a></p>
</div>
</div>
</div>
<div id="id10" style="height: 25px; left: 249px; position: absolute; top: 84px; width: 44px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_44_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_7"><a class="class8" title="About.html" href="About.html">About</a></p>
</div>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 670px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_9.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id11" style="height: 25px; left: 298px; position: absolute; top: 84px; width: 63px; z-index: 1; " class="style_SkipStroke_1 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_63_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_8"><a class="class9" title="Products.html" href="Products.html">Products</a></p>
</div>
</div>
</div>
<div id="id12" style="height: 25px; left: 549px; position: absolute; top: 84px; width: 41px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_41_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_7"><a class="class10" title="Docs.html" href="Docs.html">Docs</a></p>
</div>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 545px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_10.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id13" style="height: 27px; left: 59px; position: absolute; top: 230px; width: 196px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_196_27" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_9"><a class="class11" title="http://www.yassl.com/documentation/Beginners-Guide-Recipe-OpenEmbedded-YoctoProject.pdf" href="http://www.yassl.com/documentation/Beginners-Guide-Recipe-OpenEmbedded-YoctoProject.pdf">Download PDF</a></p>
</div>
</div>
</div>
<div style="height: 22px; width: 22px;  height: 22px; left: 33px; position: absolute; top: 231px; width: 22px; z-index: 1; " class="tinyText style_SkipStroke_2">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/PDF.png" alt="" style="border: none; height: 22px; width: 22px; "/>
</div>
<div style="height: 16px; width: 20px;  height: 16px; left: 706px; position: absolute; top: 51px; width: 20px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 20px; ">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/shapeimage_11.png" alt="" style="height: 16px; left: 0px; position: absolute; top: 0px; width: 20px; "/>
</div>
</div>
<div style="height: 19px; width: 19px;  height: 19px; left: 707px; position: absolute; top: 25px; width: 19px; z-index: 1; " class="tinyText style_SkipStroke_2">
<img src="Docs-beginners-guide-yocto-openembedded-recipe_files/United%20Kingdom(Great%20Britain).png" alt="" style="border: none; height: 19px; width: 19px; "/>
</div>
<div id="id14" style="height: 23px; left: 328px; position: absolute; top: 48px; width: 258px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_258_23" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_10">Questions? +1 (425) 245-8247</p>
</div>
</div>
</div>
<div id="id15" style="height: 258px; left: 35px; position: absolute; top: 281px; width: 460px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_460_258" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-top: 0pt; " class="paragraph_style_11">Introduction<span class="style_3"><br/></span></p>
<p class="paragraph_style_12"><br/></p>
<p class="paragraph_style_2">This tutorial comprises simple instructions for writing a recipe for the Yocto Project/OpenEmbedded and then installing it on a linux image. The Yocto Project has a <a title="http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html" href="http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html">quickstart guide</a> that is helpful in getting a basic introduction in how to build an image and run it on a machine. For the Yocto Project, it is a good idea to download the latest version of Poky (which contains packages for building a certain image). The quickstart guide for Yocto recommends going into a specific branch, however, for our build, we stayed in master for all layers. <br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">After downloading Poky, you may need a board support package(bsp) for your given device, in our case, the Minnowboard, which utilizes the meta-minnow bsp and meta-intel layers (described below). You can find these layers in the Yocto Project <a title="http://git.yoctoproject.org/" href="http://git.yoctoproject.org/">Source Repositories</a>. <br/></p>
</div>
</div>
</div>
<div id="id16" style="height: 288px; left: 509px; position: absolute; top: 281px; width: 229px; z-index: 1; " class="style_SkipStroke_3 shape-with-text stroke_0">
<div class="text-content graphic_shape_layout_style_default_External_227_286" style="padding: 1px; ">
<div class="graphic_shape_layout_style_default"></div>
</div>
</div>
<div id="id17" style="height: 107px; left: 516px; position: absolute; top: 290px; width: 219px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_219_107" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-top: 0pt; " class="paragraph_style_11">Yocto / OpenEmbedded Flyer<span class="style_3"><br/></span></p>
<p class="paragraph_style_12"><br/></p>
<p style="padding-bottom: 0pt; " class="paragraph_style_2">Download wolfSSL’s flyer on using wolfSSL with the Yocto and Open Embedded projects!</p>
</div>
</div>
</div>
<div style="height: 160px; width: 117px;  height: 160px; left: 565px; position: absolute; top: 389px; width: 117px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="http://www.wolfssl.com/files/partners/cyassl_yocto_openembedded.pdf" title="http://www.wolfssl.com/files/partners/cyassl_yocto_openembedded.pdf"><img src="Docs-beginners-guide-yocto-openembedded-recipe_files/cyassl_yocto_openembedded_sm.png" alt="" style="border: none; height: 160px; width: 117px; "/></a>
</div>
<div style="height: 19px; width: 19px;  height: 19px; left: 685px; position: absolute; top: 25px; width: 19px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="http://www.wolfssl.jp/" title="http://www.wolfssl.jp"><img src="Docs-beginners-guide-yocto-openembedded-recipe_files/japan.png" alt="" style="border: none; height: 19px; width: 19px; "/></a>
</div>
<div id="id18" style="height: 28px; left: 593px; position: absolute; top: 44px; width: 119px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_119_28" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_13"><a class="class12" title="https://www.wolfssl.com/forums" href="https://www.wolfssl.com/forums">Support <span class="style_4">Forums</span></a></p>
</div>
</div>
</div>
<div style="height: 121px; width: 155px;  height: 121px; left: 32px; position: absolute; top: 5px; width: 155px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="Home.html" title="Home.html"><img src="Docs-beginners-guide-yocto-openembedded-recipe_files/wolfssl_logo.png" alt="" style="border: none; height: 121px; width: 156px; "/></a>
</div>
<div style="height: 1973px; line-height: 1973px; " class="spacer"> </div>
</div>
<div style="height: 100px; margin-left: 0px; position: relative; width: 770px; z-index: 15; " id="footer_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
</div>
</div>
</div>
 </body>

<!-- Mirrored from www.wolfssl.com/wolfSSL/Docs-beginners-guide-yocto-openembedded-recipe.html by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 17 Jan 2017 13:26:24 GMT -->
</html>
